package main

import "fmt"

func main() {
	var result int
	result = add(1, 1)
	fmt.Println("result1 = ", result)

	// 声明一个函数类型的变量, 变量名叫做 fTest
	var fTest FuncType
	// 是变量就可以赋值
	fTest = add
	result = fTest(10, 20) // 等价于 add(10, 20)
	fmt.Println("result2 = ", result)


	fTest = minus
	result = fTest(10, 5)
	fmt.Println("result3 = ", result)

}

func add(a, b int) int {
	return a + b
}

func minus(a, b int) int {
	return a - b
}

// 函数也是一种数据类型, 通过 type 给一个函数类型起名
// FuncType 代表是一个函数类型 参数是两个 int, 返回类型是一个 int
type FuncType func(int, int) int // 没有函数名和{}

